Matthias Clasen [Thu, 27 Jun 2019 01:43:47 +0000 (01:43 +0000)]
constraints solver: Avoid critials
When the solver is finalized with existing
constraints, we end up with criticals when
the constraints ref finalize code calls
back into the hash table. Avoid that by
emptying the hash table beforehand.
Matthias Clasen [Wed, 26 Jun 2019 20:08:08 +0000 (20:08 +0000)]
constraint solver: Fix thawing
There was an obviously wrong precondition here.
Emmanuele Bassi [Mon, 17 Jun 2019 08:26:39 +0000 (09:26 +0100)]
Do not leak LayoutChild instances
Since the LayoutManager owns the LayoutChild it creates, it's also
responsible for mopping them up.
Emmanuele Bassi [Thu, 13 Jun 2019 18:33:36 +0000 (19:33 +0100)]
Add GtkConstraintLayout demo
Emmanuele Bassi [Tue, 9 Apr 2019 14:33:52 +0000 (15:33 +0100)]
Add GtkConstraintLayout
A layout manager using GtkConstraintSolver to measure and allocate
children.
Emmanuele Bassi [Mon, 10 Jun 2019 13:43:14 +0000 (14:43 +0100)]
Propagate rooting and unrooting widgets to layout managers
Layout managers may need to get access to data attached to the root of a
scene graph.
Emmanuele Bassi [Tue, 9 Apr 2019 13:22:19 +0000 (14:22 +0100)]
window: Create a GtkConstraintSolver
Implement the GtkRoot getter for GtkConstraintSolver.
Emmanuele Bassi [Tue, 9 Apr 2019 13:20:54 +0000 (14:20 +0100)]
Assign a GtkConstraintSolver to each GtkRoot
Constraints need to work across different parents, so it's better to
have a single constraint solver per top level.
Emmanuele Bassi [Tue, 9 Apr 2019 13:13:37 +0000 (14:13 +0100)]
Move the Root interface to a private header
We don't expect out of tree implementations of GtkRoot, and having the
interface structure private to the GTK code allows us to add virtual
functions involving private types.
Emmanuele Bassi [Tue, 9 Apr 2019 13:05:48 +0000 (14:05 +0100)]
Add constraint solver
GtkConstraintSolver is an implementation of the Cassowary constraint
solving algorithm:
http://constraints.cs.washington.edu/cassowary/
The Cassowary method allows to incrementally solve a tableau of linear
equations, in the form of:
x = y × coefficient + constant
with different weights, or strengths, applied to each one.
These equations can be used to describe constraints applied to a layout
of UI elements, which allows layout managers using the Cassowary method
to quickly, and efficiently, lay out widgets in complex relations
between themselves and their parent container.
Matthias Clasen [Sun, 30 Jun 2019 18:35:28 +0000 (18:35 +0000)]
Fix a crash in action muxer destruction
I've seen a crash when the action muxer gets
disposed during widget destroy, and tries to
disconnect from widget signals too late.
There is no real need to disconnect, since the
only time an action muxer is going away is when
its widget is destroyed, so just don't do it.
Timm Bäder [Sat, 29 Jun 2019 07:39:20 +0000 (09:39 +0200)]
transform: Add transform_bounds fast path for 2D_AFFINE transforms
E.g. anything involving a scale. This is important when e.g. scrolling
in the node list in the recorder, which scales every recorded node down
to fit in the list.
Timm Bäder [Sat, 29 Jun 2019 07:06:32 +0000 (09:06 +0200)]
Adwaita: Fix popover style
We add the .background class to the popover node now.
Timm Bäder [Sat, 29 Jun 2019 06:57:27 +0000 (08:57 +0200)]
gl renderer: Fix push/pop modelview behavior
Timm Bäder [Sat, 29 Jun 2019 06:53:36 +0000 (08:53 +0200)]
gl renderer: Remove some dead code
Timm Bäder [Sat, 29 Jun 2019 05:13:10 +0000 (07:13 +0200)]
gl renderer: Don't upload GL textures into the icon cache
Timm Bäder [Sat, 29 Jun 2019 05:12:10 +0000 (07:12 +0200)]
transform: Add skew parsing
Matthias Clasen [Fri, 28 Jun 2019 19:21:21 +0000 (19:21 +0000)]
Add another grid layout test
This one will be used for comparison
with constraint layouts.
Matthias Clasen [Fri, 28 Jun 2019 18:07:23 +0000 (18:07 +0000)]
Some more grid layout tests
Add testcases for spanning children and homogeneity.
Matthias Clasen [Fri, 28 Jun 2019 13:28:46 +0000 (13:28 +0000)]
Add a test for the grid layout manager
Test some obvious conditions. This is mainly
to test the waters for more intesting tests
with other layout managers later.
Matthias Clasen [Fri, 28 Jun 2019 12:40:25 +0000 (12:40 +0000)]
grid layout: Fix initial property values
Too bad that we don't cover layout children
in the default value test - it would have
caught this.
Jakub Steiner [Thu, 27 Jun 2019 10:15:51 +0000 (12:15 +0200)]
Adwaita: allow flat list row buttons to be flat
- Be more specific about the list row image buttons
Addresses corner case of https://gitlab.gnome.org/GNOME/gtk/issues/1748
Jakub Steiner [Thu, 27 Jun 2019 08:55:18 +0000 (10:55 +0200)]
Adwaita: lighten dark switch sliders
- addresses legibility concerns
Fixes https://gitlab.gnome.org/GNOME/gtk/issues/1819
Alex Monday [Thu, 27 Jun 2019 08:40:22 +0000 (10:40 +0200)]
Adwaita: Apply border-radius to .csd popovers
Fix popover_radius variable doesn't apply to .csd popover.
Closes https://gitlab.gnome.org/GNOME/gtk/issues/1984
Alex Monday [Thu, 27 Jun 2019 07:39:20 +0000 (12:39 +0500)]
Adwaita: Fix padding/rounding on submenus
- Apply menubar submenu style for .csd submenus;
- Remove child subemenu style (looks like it is inherited
from a parent).
Closes https://gitlab.gnome.org/GNOME/gtk/issues/1976
Jakub Steiner [Thu, 27 Jun 2019 08:27:28 +0000 (10:27 +0200)]
Adwaita: darken osd background for A:dark
- OSD background color was too close to $bg_color to make out outline
Fixes https://gitlab.gnome.org/GNOME/gtk/issues/1964
Matthias Clasen [Mon, 24 Jun 2019 19:52:12 +0000 (19:52 +0000)]
Merge branch 'master' into 'master'
Fix a typo
See merge request GNOME/gtk!960
Hodong Kim [Mon, 24 Jun 2019 18:42:40 +0000 (18:42 +0000)]
Fix a typo
Daniel Boles [Mon, 24 Jun 2019 17:00:57 +0000 (18:00 +0100)]
ShortcutsSection: Fix tiny grammar-o "in for"→"in"
Ask Hjorth Larsen [Mon, 24 Jun 2019 16:55:47 +0000 (18:55 +0200)]
Updated Danish translation of gtk-properties
Ask Hjorth Larsen [Mon, 24 Jun 2019 16:55:25 +0000 (18:55 +0200)]
Updated Danish translation of gtk
Matthias Clasen [Mon, 24 Jun 2019 16:10:03 +0000 (16:10 +0000)]
Merge branch 'no-varargs-activate' into 'master'
Add a non-varargs variant of activate_action
See merge request GNOME/gtk!959
Matthias Clasen [Mon, 24 Jun 2019 15:44:26 +0000 (11:44 -0400)]
Add a non-varargs variant of activate_action
I recently turned gtk_widget_activate_action()
into a varargs function. That is more convenient
from C, but we need a non-varargs variant for
bindings. So add the old API back, under the
name gtk_widget_activate_action_variant(),
with a rename-to annotation.
Emmanuele Bassi [Mon, 24 Jun 2019 15:13:15 +0000 (15:13 +0000)]
Merge branch 'issue-1961-master' into 'master'
Provide GdkMonitor:connector
See merge request GNOME/gtk!954
Emmanuele Bassi [Thu, 20 Jun 2019 15:09:28 +0000 (16:09 +0100)]
Set the monitor's connector under X11
Like we do on Wayland.
In this case, we copy it from the same source as the output name,
because it's going to match.
Emmanuele Bassi [Thu, 20 Jun 2019 14:55:58 +0000 (15:55 +0100)]
Relay the xdg_output.name to GdkMonitor
The xdg_output v2 interface has a `name` property that reflects the
output name coming from the compositor.
This is the closest thing we can get to a connector name.
Emmanuele Bassi [Thu, 20 Jun 2019 13:52:41 +0000 (14:52 +0100)]
Add getter for a monitor connector
The migration from GdkScreen's monitor API to GdkMonitor left out a way
to get the connector's name of a monitor.
While there's no real guarantee coming from the underlying graphics
system that the connector's name is stable, some system components may
use it to uniquely identify a monitor until the next plug in/out event.
Emmanuele Bassi [Mon, 24 Jun 2019 14:22:18 +0000 (14:22 +0000)]
Merge branch 'stack-realign' into 'master'
build: Do not use add_global_flags()
See merge request GNOME/gtk!958
Emmanuele Bassi [Mon, 24 Jun 2019 14:00:21 +0000 (15:00 +0100)]
build: Do not use add_global_flags()
It's almost always not what you want.
Daniel Mustieles [Mon, 24 Jun 2019 07:59:52 +0000 (09:59 +0200)]
Updated Spanish translation
Matthias Clasen [Sun, 23 Jun 2019 22:50:33 +0000 (22:50 +0000)]
Make gtk_widget_activate_action better
As a convenience API, this should be easy to use,
so don't expect callers to manually create a
variant, do it for them.
Update all callers.
Matthias Clasen [Sun, 23 Jun 2019 17:22:02 +0000 (17:22 +0000)]
widget: create parent muxers lazily
We need to create a muxer eagerly for every
widget that has class actions, since those
are otherwise missed in the action lookup
on the muxer side. But otherwise, there is
no reason to create parent muxers aggressively,
as long as we update the parent muxers on
root/unroot.
This reduces the number of muxers we create
in widget-factory from 210 to around 50.
Matthias Clasen [Sun, 23 Jun 2019 14:55:10 +0000 (14:55 +0000)]
window: Fix the default value of mnemonics-visible
They aren't visible, so why should the property
be TRUE?
Timm Bäder [Sun, 23 Jun 2019 07:58:26 +0000 (07:58 +0000)]
Merge branch '362-gtk-fileopen-dialog-need-filetype-mime-sort-option-2_GTK4' into 'master'
GtkFileChooser: add a sortable "Type" column
Closes #362
See merge request GNOME/gtk!874
Matthias Clasen [Sun, 23 Jun 2019 00:24:26 +0000 (20:24 -0400)]
Add includes back to gtk4.types.in
Without these, gtkdoc-scangobj doesn't work. Who knew!
Matthias Clasen [Sun, 23 Jun 2019 01:38:27 +0000 (01:38 +0000)]
Add another action test
Test that disabled actions aren't activated.
Matthias Clasen [Sun, 23 Jun 2019 01:19:19 +0000 (21:19 -0400)]
action muxer: Don't activate disabled actions
We really shouldn't.
Matthias Clasen [Sat, 22 Jun 2019 23:30:22 +0000 (23:30 +0000)]
Add another test for action inheritance
This one checks for precedence between
class actions and inserted groups.
Matthias Clasen [Sat, 22 Jun 2019 23:17:30 +0000 (19:17 -0400)]
widget: Clarify docs for action inheritance
Spell out how action inheritance works wrt to prefixes.
Matthias Clasen [Sat, 22 Jun 2019 23:11:49 +0000 (23:11 +0000)]
Add a test for action introspection
This checks that gtk_widget_query_action works.
Matthias Clasen [Sat, 22 Jun 2019 23:00:42 +0000 (23:00 +0000)]
Add another test for action inheritance
Check that overlapping prefixes are handled
correctly.
Matthias Clasen [Sat, 22 Jun 2019 22:51:23 +0000 (22:51 +0000)]
action muxer: Change inheritance
Previously, we would not look any further for
an action once we found a match for the prefix,
defining inheritance by groups. Change this to
inheritance for individual actions, since we
are moving towards individual actions as the
main ingredient in GTKs action support.
Matthias Clasen [Sat, 22 Jun 2019 22:38:14 +0000 (22:38 +0000)]
action muxer: Remove unused api
Matthias Clasen [Sat, 22 Jun 2019 22:34:26 +0000 (22:34 +0000)]
textview: Stop using action muxer needlessly
This lets us drop some private api.
Matthias Clasen [Sat, 22 Jun 2019 20:42:45 +0000 (20:42 +0000)]
widget: Teach query_action about property actions
This might be useful for documentation purposes.
Matthias Clasen [Sat, 22 Jun 2019 20:31:46 +0000 (16:31 -0400)]
widget: Rename a function
set_enabled is shorter and more to the point
than enabled_changed, now that we no longer have
a callback to query the state.
Adapt all callers.
Matthias Clasen [Sat, 22 Jun 2019 20:18:05 +0000 (20:18 +0000)]
Replace stateful actions by property actions
The only cases of stateful actions we've seen
so far have been boolean properties, and we
don't really want to add much state handling
API, so lets just go with property actions
for now.
Adapt the only user in GtkText.
Matthias Clasen [Sat, 22 Jun 2019 18:24:46 +0000 (14:24 -0400)]
widget: Add parameter type back to install_action
Adapt all callers.
Nelson Benítez León [Thu, 6 Jun 2019 23:02:11 +0000 (19:02 -0400)]
GtkFileChooser: add a sortable "Type" column
along with a new 'type-format' setting that allows
to choose the output format for the "Type" column.
The options implemented for this setting are:
'mime' : Output from g_content_type_get_mime_type().
'description' : Output from g_content_type_get_description().
'category' : It uses the corresponding generic icon
of the mime type to group by categories (aka basic types).
This produces a more compact output than previous options,
and allows for type families to be grouped together, so eg.
after sorting by "Type" column, jpeg and png images will
be placed together, or the various types of archiver files
will also be grouped together.
This format was copied from and currently used by Nautilus
list view, so we also improve consistency with Nautilus.
Bugzilla entry for Nautilus implementation is:
https://bugzilla.gnome.org/show_bug.cgi?id=683722
The list of type families or categories can be checked on:
https://developer.gnome.org/icon-naming-spec/#mimetypes
This 'category' format is set as default.
Issue #362
Matthias Clasen [Sat, 22 Jun 2019 05:13:08 +0000 (01:13 -0400)]
css: Fix some doc typos
Matthias Clasen [Sat, 22 Jun 2019 05:12:27 +0000 (01:12 -0400)]
Add GTK_CSS_PARSER_WARNING_UNIMPLEMENTED
gtk-doc was complaining about it missing,
and it is used in some ifdefed code.
Matthias Clasen [Sat, 22 Jun 2019 13:35:57 +0000 (09:35 -0400)]
Add owner types for widget actions
This lets us filter out actions from parent classes
when introspecting.
Matthias Clasen [Sat, 22 Jun 2019 01:16:55 +0000 (01:16 +0000)]
Make actions minimally introspectable
This will let us autogenerate some docs for
actions, in the future.
Matthias Clasen [Sat, 22 Jun 2019 02:35:52 +0000 (02:35 +0000)]
widget actions: Add an explicit state type
Make the state type part of the API for installing
stateful widget actions. That lets us introspect it.
Update all callers.
Matthias Clasen [Sat, 22 Jun 2019 00:04:37 +0000 (00:04 +0000)]
application: Stop extracting accels from menus
This functionality has been superseded by
gtk_application_set_accels_for_action in GTK3,
and we don't want to carry it forward in GTK4.
Goran Vidović [Fri, 21 Jun 2019 23:38:11 +0000 (23:38 +0000)]
Update Croatian translation
Goran Vidović [Fri, 21 Jun 2019 22:40:38 +0000 (22:40 +0000)]
Update Croatian translation
Goran Vidović [Fri, 21 Jun 2019 22:06:32 +0000 (22:06 +0000)]
Update Croatian translation
Goran Vidović [Fri, 21 Jun 2019 11:17:40 +0000 (11:17 +0000)]
Update Croatian translation
Goran Vidović [Fri, 21 Jun 2019 10:49:10 +0000 (10:49 +0000)]
Update Croatian translation
Daniel Mustieles [Fri, 21 Jun 2019 08:04:41 +0000 (10:04 +0200)]
Updated Spanish translation
Matthias Clasen [Fri, 21 Jun 2019 03:57:26 +0000 (03:57 +0000)]
Add a test for GtkText actions
Check that the class actions are there and work.
Matthias Clasen [Fri, 21 Jun 2019 03:41:25 +0000 (03:41 +0000)]
Add a test for gtk_widget_insert_action_group
This tests that action group inheritance
behaves as expected.
Matthias Clasen [Fri, 21 Jun 2019 02:55:27 +0000 (02:55 +0000)]
window: Cosmetics
Matthias Clasen [Wed, 19 Jun 2019 04:26:15 +0000 (04:26 +0000)]
inspector: Fix actions visibility
We need to always hide the page when setting
an object, otherwise the initial visibility
sticks.
Matthias Clasen [Wed, 19 Jun 2019 11:11:06 +0000 (11:11 +0000)]
inspector: Use event controller names
Use these in the same place we use widget names.
Matthias Clasen [Wed, 19 Jun 2019 11:09:38 +0000 (11:09 +0000)]
event controller: Add a name property
This helps identifying controllers in the inspector.
Matthias Clasen [Fri, 21 Jun 2019 02:47:35 +0000 (22:47 -0400)]
Build fix
Matthias Clasen [Fri, 21 Jun 2019 02:26:04 +0000 (02:26 +0000)]
Fix initial mnemonic visibility
We were showing mnemonics initially, which is not desired.
Matthias Clasen [Fri, 21 Jun 2019 02:22:26 +0000 (02:22 +0000)]
main: Move visible mnemonics handling
No need to special-case this anymore; we can use
a regular event controller in GtkWindow for this.
Matthias Clasen [Fri, 21 Jun 2019 01:57:51 +0000 (01:57 +0000)]
main: Move visible focus handling
No need to special-case this anymore; we can use
a regular event controller in GtkWindow for this.
Daniel Boles [Thu, 13 Jun 2019 17:22:33 +0000 (18:22 +0100)]
Overlay: Document overlay children aren't measured
Some users expect that the Overlay will automatically request enough
size for its overlay children as well as its main child. It doesn't,
because it's just a GtkBin. Add a short paragraph pointing that out.
Close https://gitlab.gnome.org/GNOME/gtk/issues/1939
Efstathios Iosifidis [Thu, 20 Jun 2019 20:26:15 +0000 (20:26 +0000)]
Update Greek translation
Efstathios Iosifidis [Thu, 20 Jun 2019 20:10:21 +0000 (20:10 +0000)]
Update Greek translation
Daniel Boles [Thu, 20 Jun 2019 19:51:37 +0000 (20:51 +0100)]
FileChooserButton: Document the CSS nodes & class
The only glancing mention of this we had was that GtkButton mentioned it
in passing when discussing how `button` could get contextual classes,
and even that's not relevant in master anymore... so drop it from there.
Daniel Mustieles [Wed, 19 Jun 2019 08:10:08 +0000 (10:10 +0200)]
Updated Spanish translation
Daniel Mustieles [Wed, 19 Jun 2019 08:09:03 +0000 (10:09 +0200)]
Updated Spanish translation
Daniel Boles [Tue, 18 Jun 2019 20:43:07 +0000 (21:43 +0100)]
ListBox: Document buildable child type placeholder
andyholmes on IRC asked about this and it wasn't documented, so fix that
Daniel Boles [Tue, 18 Jun 2019 20:42:40 +0000 (21:42 +0100)]
Window: Hyperlink to GtkBuildable from its section
Benjamin Otte [Sat, 4 Aug 2018 21:10:05 +0000 (23:10 +0200)]
gsk: Fix annotations for ref()/unref()
Benjamin Otte [Tue, 31 Jul 2018 05:49:36 +0000 (07:49 +0200)]
bindings: Make gtk_binding_entry_add_signall() private
This function needs a replacement and that will appear after
refactorings.
Benjamin Otte [Tue, 31 Jul 2018 05:36:09 +0000 (07:36 +0200)]
bindings: Hide structs
Benjamin Otte [Tue, 31 Jul 2018 05:24:58 +0000 (07:24 +0200)]
bindings: Remove unused member variables
Benjamin Otte [Wed, 1 Aug 2018 19:13:06 +0000 (21:13 +0200)]
x11: Actually call the finished func when finishing
Copy/paste madness was calling the status func...
Benjamin Otte [Thu, 23 Aug 2018 04:39:33 +0000 (06:39 +0200)]
testgtk: Remove unused code
This code has been doing nothing since 2010 when the optionmenu was
removed in
274395063a051717ad9eb5ceab8213724552ad72.
Benjamin Otte [Sun, 5 Aug 2018 01:17:31 +0000 (03:17 +0200)]
contentformats: Fix doc typo
Matthias Clasen [Tue, 18 Jun 2019 19:10:45 +0000 (19:10 +0000)]
Merge branch 'widget-class-actions-2' into 'master'
Widget class action
See merge request GNOME/gtk!948
Matthias Clasen [Sat, 15 Jun 2019 04:15:37 +0000 (00:15 -0400)]
Docs: expand actions chapter
Mention widget class actions and non-global actions
in various places.
Matthias Clasen [Sat, 15 Jun 2019 03:56:45 +0000 (03:56 +0000)]
color chooser widget: Use the new action machinery
Port GtkColorChooserWidget to use widget class actions.
Note that this also changes the names of
the GtkColorChooserWidget actions away from a generic
"context" prefix.
Matthias Clasen [Sat, 15 Jun 2019 02:25:46 +0000 (02:25 +0000)]
link button: Use the new action machinery
Port GtkLinkButton to use widget class actions.
Note that this also changes the names of
the GtkLinkButton actions away from a generic
"context" prefix.